import pygame

class Timer:
	def __init__(self, duration, func=None):
		# 初始化计时器对象。
		# 参数：
		# - duration：计时器的持续时间（以毫秒为单位）。
		# - func：计时器结束时要调用的函数（可选）。
		self.duration = duration
		self.func = func
		self.start_time = 0
		self.active = False

	def activate(self):
		# 激活计时器，开始计时。
		self.active = True
		self.start_time = pygame.time.get_ticks()

	def deactivate(self):
		# 停止计时器，将计时器重置为非激活状态。
		self.active = False
		self.start_time = 0

	def update(self):
		# 更新计时器的状态，检查是否已达到持续时间并执行相应操作。
		current_time = pygame.time.get_ticks()
		if current_time - self.start_time >= self.duration:
			if self.func and self.start_time != 0:
				self.func()
			self.deactivate()

